package cn.edu.zsc.blms.service.array;

import cn.edu.zsc.blms.App;
import cn.edu.zsc.blms.domain.Book;

public class BookService extends BaseService implements IBookService{
    public static Book[]DATA=new Book[100];

    /*public static int getInputId(){
        if(!App.input.hasNextInt()){
            App.input.nextLine();
            System.out.println("ID为整数，请输入整数值：");
            return -1;
        }

        int id= App.input.nextInt();
        App.input.nextLine();
        if(id>=DATA.length || DATA[id]==null){
            System.out.println("不存在该ID的图书");
            return -1;
        }
        return id;
    }*/

    @Override
    public  void create(){
        if(Book.idCounter> DATA.length){
            System.out.println("图书数量已满，不能再添加");
            return;
        }
        System.out.print("请输入书名：");
        String name=App.input.nextLine();
        System.out.print("请输入书号：");
        String isbn=App.input.nextLine();
        System.out.print("请输入类目：");
        String category=App.input.nextLine();
        System.out.print("请输入作者：");
        String author=App.input.nextLine();
        System.out.print("请输入出版社：");
        String press=App.input.nextLine();
        System.out.print("请输入单价，请输入正确格式，暂不对做数据格式检测：");

        double price=App.input.nextDouble();
        App.input.nextLine();
        Book book=new Book(name,isbn,category,author,press,price);
        DATA[book.id]=book;
        System.out.println("成功添加1本图书！");
    }

    @Override
    public  void disable(){
        System.out.print("请输入要禁用的图书ID：");
        int id=getInputId();
        if(id==-1){
            return;
        }
        Book book=(Book) DATA[id];
        book.disable=true;
        System.out.println("该图书已被禁用");
    }

    @Override
    public void update(){
        System.out.print("请输入要编辑的图书ID：");
        int id=getInputId();
        if(id==-1){
            return;
        }
        Book book=(Book) DATA[id];
        System.out.print("请输入书名，直接按回车表示不修改：");
        String name=App.input.nextLine();
        book.name="".equals(name)?book.isbn:name;
        System.out.print("请输入书号，直接按回车表示不修改：");
        String isbn=App.input.nextLine();
        book.isbn=App.input.nextLine();
        book.isbn="".equals(isbn)?book.isbn:name;
        System.out.print("请输入类目，直接按回车表示不修改：");
        String category=App.input.nextLine();
        book.category="".equals(category)? book.category:category;

        System.out.print("请输入作者，直接按回车表示不修改：");
        String author=App.input.nextLine();
        book.author="".equals(author)? book.author : author;
        System.out.print("请输入出版社，直接按回车表示不修改：");
        String press=App.input.nextLine();
        book.press="".equals(press)?book.press:press;
        System.out.print("请输入单价，请输入正确格式，暂不对做数据格式检测：");

        book.price=App.input.nextDouble();
        App.input.nextLine();
        System.out.println("该图书的信息已被修改");
    }

    @Override
    public void query(){
        System.out.print("请输入要查询的图书名称：");
        String name=App.input.nextLine();
        for(int i=0;i<Book.idCounter;i++){
            Book book=(Book) DATA[i];
            System.out.println("ID："+book.id+",书名："+book.name+",isbn:"+book.isbn+",类目："+book.category+",作者："+book.author+",出版社："+book.press+",价格："+book.price+",废弃："+(book.disable?"是":"否"));
        }
    }

    private static IBookService singleton;

    private BookService(){

    }

    public static IBookService getSingleton(){
        if(singleton==null){
            singleton=new BookService();
        }
        return singleton;
    }
}
